﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Systemet.SideViews
{
    public partial class SideAktivitet : UserControl
    {
        private Views.AktivitetKort mainAktivitet;
        private Domain.AktivitetsController aKControl;
        private IEnumerable<Aktivietetsregister> aktiviter;


        public SideAktivitet()
        {
            InitializeComponent();
            AccessController.Instance.SidMeny = this;
            updateComboboxes();
        }

        private void SideAktivitet_Load(object sender, EventArgs e)
        {
            FlowController.Instance.ShowSpecifikMenu(FlowController.Instance.MainTabView[0]);
            mainAktivitet = (Views.AktivitetKort)AccessController.Instance.ReturnMainView();

        }
        //Update
        public void updateComboboxes()
        {
            aKControl = new Domain.AktivitetsController();
            aktiviter = aKControl.ComboboxUpdate();
            FilterComboboxes();
        }
        //Filtrerar
        private void FilterComboboxes()
        {
            clearCmbTxt();
            cmbAktivitetNamn.Items.Clear();
            cmbAktivID.Items.Clear();
            string avd = cmbAvdelning.Text ;
            if (cmbAvdelning.Text == "Alla")
            {
                avd = "";
            }
            foreach (Aktivietetsregister aK in aktiviter)
            {
                if (aK.avdelningsnamn.Contains(avd) || avd == "")
                {
                    cmbAktivitetNamn.Items.Add(aK.aktivitet);
                    cmbAktivID.Items.Add(aK.aktivitetsID);
                }
            }
        }
        //OnSearch
        private void OnSearchIndexChange(object sender, EventArgs e)
        {
            FilterComboboxes();
            onSearchChange(sender, e);
        }

        //Aktuella filtreringar för datagridviewn
        public void onSearchChange(object sender, EventArgs e)
        {
            string avdelning;
            if (cmbAvdelning.Text == "Alla")
            {
                avdelning = "";
            }
            else
            {
                avdelning = cmbAvdelning.Text;
            }

            string aktivitetsnamn = cmbAktivitetNamn.Text;
            string aktivitetsID = cmbAktivID.Text;

            mainAktivitet = (Views.AktivitetKort)AccessController.Instance.MainView;
            mainAktivitet.GetSearchOptions(avdelning, aktivitetsnamn, aktivitetsID);
           // aKControl.updateDgv(avdelning, aktivitetsnamn, aktivitetsID);

        }
        private void clearCmbTxt()
        {
            cmbAktivitetNamn.Text = "";
            cmbAktivID.Text = "";
        }
  
        private void AktivitetIdChange(object sender, EventArgs e)
        {


            if (sender == cmbAktivID && cmbAktivID.Focused)
            {
                foreach (Aktivietetsregister a in aktiviter)
                {
                    if (a.aktivitetsID == cmbAktivID.Text)
                    {
                        cmbAktivitetNamn.Text = a.aktivitet;
                        break;
                    }
                    
                }
                mainAktivitet = (Views.AktivitetKort)AccessController.Instance.MainView;
                mainAktivitet.GetSearchOptions("", cmbAktivitetNamn.Text, cmbAktivID.Text);
               // aKControl.updateDgv("", cmbAktivitetNamn.Text, cmbAktivID.Text);
            }



        }
        private void AktivitetNameChange(object sender, EventArgs e)
        {


            if (sender == cmbAktivitetNamn && cmbAktivitetNamn.Focused)
            {
                foreach (Aktivietetsregister a in aktiviter)
                {
                    if (a.aktivitet == cmbAktivitetNamn.Text)
                    {
                        cmbAktivID.Text = a.aktivitetsID;
                        break;
                    }

                }
                mainAktivitet = (Views.AktivitetKort)AccessController.Instance.MainView;
                mainAktivitet.GetSearchOptions("", cmbAktivitetNamn.Text, cmbAktivID.Text);
              //  aKControl.updateDgv("", cmbAktivitetNamn.Text, cmbAktivID.Text);
            }


        }

    }
}
